# 本项目针对32位x86指令，使用 64 位gcc来编译会失败
# 需要显式指定 32 位模式编译 -m32
# 编译失败：安装 32 位 GCC 工具链
# sudo apt install gcc-multilib
gcc = x86_64-linux-gnu


#明确声明所有目标为非中间文件
.PRECIOUS: %.o

%.o : %.c
	$(gcc)-gcc -m32 -nostdlib -static -c -fno-builtin $< -o $@

%.out : %.o
#	-m elf_i386  : 以32位方式进行链接  
	$(gcc)-ld -m elf_i386 -T ./my_ld_script.lds -static -e no_main -Map hello.map  -o $@ $<

all : hello.out

clean:
	rm -f *.out *.o

.PHONY : all
